SPSS MATCH FILES 命令快速教程与示例
作者:Ruben Geert van den Berg,归属于 SPSS A-Z 词汇表
MATCH FILES
是一个 SPSS 命令,主要用于合并具有相似个案(cases)但不同变量(variables)的数据。如果数据具有不同的个案但相似的变量,请使用 [ADD FILES](/spss-add-files-command)
命令。MATCH FILES
也可以用于执行类似于 Excel 中 VLOOKUP 的表查找操作。
通过唯一个案标识符 id 合并两个数据集。
SPSS MATCH FILES - 基本用法
MATCH FILES
最常见的应用场景是合并两个数据文件或数据集,它们包含相似个案的不同变量。- 每个个案在每个数据源中都有一个唯一的 ID(标识符)。这个 ID 告诉 SPSS 哪个数据源中的个案对应于另一个数据源中的哪个个案。对应的个案在合并后的数据中会成为一个单一的个案。
- 下面的 语法 演示了一个非常基本的
MATCH FILES
命令。如果你不熟悉如何使用多个数据集,请查看 SPSS 数据集教程 1 - 基础。
SPSS MATCH FILES 语法示例 1
***1. 创建测试数据 1.
**
data list free/id test_1.
begin data
1 8
3 4
5 6
end data.
dataset name test_1.
***2. 创建测试数据 2.
**
data list free/id test_2.
begin data
1 4
3 9
4 8
end data.
dataset name test_2.
***3. 合并 test_1 和 test_2.
**
match files file = test_1
/file = test_2
/by id.
execute.
***4. 关闭除合并后的数据集之外的所有数据集.
**
dataset close test_1.
dataset close test_2.
SPSS MATCH FILES - 表查找
- 第二个常见的应用场景是有一个包含受访者及其邮政编码的文件。请注意,受访者文件中可能存在重复的邮政编码。
- 如果我们还有一个表,其中包含每个邮政编码对应的城市(或地区),我们可以将这些信息合并到受访者数据中。在这种情况下,我们可以使用
MATCH FILES
命令,其中包含一个FILE
(包含重复项)和一个TABLE
(不包含重复项)。 - 下面的语法演示了如何执行此操作。请注意,
*
指的是当前活动数据集。
SPSS MATCH FILES 语法示例 2
***1. 包含邮政编码和城市的表.
**
data list free/zip_code (f3.0) city(a20).
begin data
123 'Amsterdam'
456 'Haarlem'
789 "'s Hertogenbosch"
end data.
dataset name cities.
***2. 包含受访者及其邮政编码的迷你数据.
**
data list free /id zip_code.
begin data
1 123
2 123
3 123
4 456
5 456
6 456
7 789
8 789
9 789
end data.
***3. 使用邮政编码将城市添加到活动数据集.
**
match files file * / table cities
/by zip_code.
execute.
***4. 关闭除合并后的数据之外的所有数据.
**
dataset close cities.
SPSS MATCH FILES - 单个数据源
MATCH FILES
也可以与单个数据源一起使用。这通常用于重新排序变量和/或删除变量。- 这里的一个选项是使用
KEEP
子命令。它基本上意味着“删除除…之外的所有变量”。 - 或者,
DROP
子命令意味着“保留除…之外的所有变量”。请注意,这些子命令可以在GET FILE
、SAVE
和ADD FILES
命令中以类似的方式使用。 TO
和ALL
关键字在这里非常方便。但是,在这种情况下,ALL
表示“尚未处理的所有变量”,而不仅仅是所有变量。
SPSS MATCH FILES 语法示例 3
***1. 变量顺序错误的单一个案测试数据.
**
data list free / v1 to v3 v5 v6 v7 v8 v4.
begin data
0 0 0 0 0 0 0 0
end data.
*** 2. 重新排序变量. 注意这里的 TO 和 ALL 关键字.
**
match files file * / keep v1 to v3 v4 all.
execute.
SPSS MATCH FILES - 规则
- 你可以在一个
MATCH FILES
命令中指定最多 50 个数据源,而不仅仅是合并两个数据源。 - 可以使用多个变量来唯一定义个案。我们将在下文中将它们称为
BY
变量,因为它们在BY
子命令中使用。一个常见的例子是受访者拥有一个household_id
(家庭ID)和一个member_id
(成员ID),指示每个家庭的第 n 个成员。这两个变量可能有很多重复项,但它们的组合应该能唯一定义每个受访者。 - 所有数据必须按
BY
变量升序排序。如有疑问,请在继续之前运行SORT CASES
。 - 合并后的变量的顺序是它们被遇到的顺序。这意味着指定数据源的顺序会影响最终结果。要进行演示,请先使用
file = test_1 / file = test_2
运行第一个语法示例一次,然后再次使用file = test_2 / file = test_1
运行一次。 - 确保数据源之间没有重复的变量名。在这种情况下,首先遇到的重复变量上的值会覆盖稍后遇到的变量上的值。令人恼火的是,如果发生这种情况,SPSS 不会 发出警告。